package com.ibm.db2oncampus.portal.domain.service;

import java.util.List;

import com.ibm.db2oncampus.portal.domain.domain.Domain;
import com.ibm.db2oncampus.portal.domain.domain.DomainCountry;
import com.ibm.db2oncampus.portal.domain.domain.DomainExperienceType;
import com.ibm.db2oncampus.portal.domain.domain.DomainGraduationLevel;
import com.ibm.db2oncampus.portal.domain.domain.DomainWhoIAm;
import com.ibm.db2oncampus.portal.domain.exception.DomainException;
import com.ibm.db2oncampus.portal.framework.service.InvalidDataException;
import com.ibm.db2oncampus.portal.framework.service.Service;

/**
 * 
 * @author Wellington
 *
 */
public interface DomainService extends Service {

	public List<DomainCountry> listAllCountry() throws DomainException;
	
	public List<DomainWhoIAm> listAllWhoIAm() throws DomainException;
	
	public List<DomainExperienceType> listAllExperienceTypes() throws DomainException;
	
	public List<DomainGraduationLevel> listAllGraduationLevels() throws DomainException;
	
	public List<String> listDomainTypeByType(String type) throws InvalidDataException;
	
	public List<Domain> listDomainValueByType(String type) throws InvalidDataException;
	
	public Domain findDomainValueByTypeAndValue(String type, String value) throws InvalidDataException;
	
	public void saveDomainValueByType(String type, List<Domain> domainList) throws InvalidDataException;
}
